//
//  Copyright (c) 2003 Launchbird Design Systems, Inc.
//  All rights reserved.
//  
//  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
//    Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
//    Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
//  
//  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
//  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
//  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
//  OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
//  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
//  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//  
//  
//  Overview:
//  
//    Cordics (COordinate Rotation DIgital Computers) are used to calculate
//    trigonometric functions and complex plane phase rotations.
//    This vector mode cordic rotates any complex vector to the positive real axis.
//    The resulting angle is the initial angle plus the angle of rotation.
//  
//  Interface:
//  
//    Synchronization:
//      clock_c  : Clock input.
//      enable_i : Synchronous enable.
//      reset_i  : Synchronous reset.
//  
//    Inputs:
//      real_i   : Initial real component (signed).
//      imag_i   : Initial imaginary component (signed).
//      angle_i  : Initial angle (modulo 2PI).
//  
//    Outputs:
//      real_o   : Resulting real component (signed).
//      imag_o   : Resulting imaginary component (signed).
//      angle_o  : Resulting angle (modulo 2PI).
//  
//  Built In Parameters:
//  
//    Cordic Mode    = Vector
//    Vector Width   = 8
//    Angle Width    = 8
//    Cordic Stages  = 8
//  
//  Resulting Pipeline Latency is 10 clock cycles.
//  
//  
//  
//  Generated by Confluence 0.3.0  --  Launchbird Design Systems, Inc.  --  www.launchbird.com
//  
//  Interface
//  
//    Build Name    : cf_cordic_v_8_8_8
//    Clock Domains : clock_c  
//    Input  : enable_i(1)
//    Input  : reset_i(1)
//    Input  : real_i(8)
//    Input  : imag_i(8)
//    Input  : ang_i(8)
//    Output : real_o(8)
//    Output : imag_o(8)
//    Output : ang_o(8)
//  
//  
//  

module cf_cordic_v_8_8_8 (clock_c, enable_i, reset_i, real_i, imag_i, ang_i, real_o, imag_o, ang_o);
input  clock_c;
input  enable_i;
input  reset_i;
input  [7:0] real_i;
input  [7:0] imag_i;
input  [7:0] ang_i;
output [7:0] real_o;
output [7:0] imag_o;
output [7:0] ang_o;
wire   [7:0] n6;
wire   n8;
wire   n21;
wire   [1:0] n22;
wire   [2:0] n23;
wire   [3:0] n24;
wire   [4:0] n25;
wire   [5:0] n26;
wire   [6:0] n27;
wire   [7:0] n28;
wire   n29;
wire   n30;
wire   [6:0] n31;
wire   [7:0] n32;
wire   n33;
wire   n34;
wire   [6:0] n35;
wire   [7:0] n36;
wire   n37;
wire   [7:0] n38;
wire   [7:0] n39;
wire   n40;
wire   n41;
wire   [1:0] n42;
wire   [2:0] n43;
wire   [3:0] n44;
wire   [4:0] n45;
wire   [5:0] n46;
wire   [6:0] n47;
wire   [7:0] n48;
wire   [7:0] n49;
wire   [7:0] n50;
wire   [7:0] n55;
wire   [7:0] n60;
wire   n77;
wire   [1:0] n78;
wire   [2:0] n79;
wire   [3:0] n80;
wire   [4:0] n81;
wire   [5:0] n82;
wire   [6:0] n83;
wire   [7:0] n84;
wire   n85;
wire   n86;
wire   [6:0] n87;
wire   [7:0] n88;
wire   n89;
wire   n90;
wire   [6:0] n91;
wire   [7:0] n92;
wire   n93;
wire   n94;
wire   [7:0] n96;
wire   [7:0] n97;
wire   [7:0] n98;
wire   [7:0] n99;
wire   [7:0] n100;
wire   n105;
wire   [7:0] n107;
wire   [7:0] n108;
wire   [7:0] n109;
wire   [7:0] n110;
wire   [7:0] n111;
wire   [7:0] n116;
wire   [7:0] n117;
wire   [7:0] n118;
wire   [7:0] n119;
wire   n136;
wire   [1:0] n137;
wire   [2:0] n138;
wire   [3:0] n139;
wire   [4:0] n140;
wire   [5:0] n141;
wire   [6:0] n142;
wire   [7:0] n143;
wire   n144;
wire   n145;
wire   [6:0] n146;
wire   [7:0] n147;
wire   n148;
wire   n149;
wire   [6:0] n150;
wire   [7:0] n151;
wire   n152;
wire   n153;
wire   n154;
wire   n155;
wire   [6:0] n156;
wire   [7:0] n157;
wire   [7:0] n158;
wire   [7:0] n159;
wire   [7:0] n160;
wire   n165;
wire   n166;
wire   n167;
wire   [6:0] n168;
wire   [7:0] n169;
wire   [7:0] n170;
wire   [7:0] n171;
wire   [7:0] n172;
wire   [7:0] n177;
wire   [7:0] n178;
wire   [7:0] n179;
wire   [7:0] n180;
wire   n197;
wire   [1:0] n198;
wire   [2:0] n199;
wire   [3:0] n200;
wire   [4:0] n201;
wire   [5:0] n202;
wire   [6:0] n203;
wire   [7:0] n204;
wire   n205;
wire   n206;
wire   [6:0] n207;
wire   [7:0] n208;
wire   n209;
wire   n210;
wire   [6:0] n211;
wire   [7:0] n212;
wire   n213;
wire   n214;
wire   n215;
wire   n216;
wire   [1:0] n217;
wire   [5:0] n218;
wire   [7:0] n219;
wire   [7:0] n220;
wire   [7:0] n221;
wire   [7:0] n222;
wire   n227;
wire   n228;
wire   n229;
wire   [1:0] n230;
wire   [5:0] n231;
wire   [7:0] n232;
wire   [7:0] n233;
wire   [7:0] n234;
wire   [7:0] n235;
wire   [7:0] n240;
wire   [7:0] n241;
wire   [7:0] n242;
wire   [7:0] n243;
wire   n260;
wire   [1:0] n261;
wire   [2:0] n262;
wire   [3:0] n263;
wire   [4:0] n264;
wire   [5:0] n265;
wire   [6:0] n266;
wire   [7:0] n267;
wire   n268;
wire   n269;
wire   [6:0] n270;
wire   [7:0] n271;
wire   n272;
wire   n273;
wire   [6:0] n274;
wire   [7:0] n275;
wire   n276;
wire   n277;
wire   n278;
wire   n279;
wire   [1:0] n280;
wire   [2:0] n281;
wire   [4:0] n282;
wire   [7:0] n283;
wire   [7:0] n284;
wire   [7:0] n285;
wire   [7:0] n286;
wire   n291;
wire   n292;
wire   n293;
wire   [1:0] n294;
wire   [2:0] n295;
wire   [4:0] n296;
wire   [7:0] n297;
wire   [7:0] n298;
wire   [7:0] n299;
wire   [7:0] n300;
wire   [7:0] n305;
wire   [7:0] n306;
wire   [7:0] n307;
wire   [7:0] n308;
wire   n325;
wire   [1:0] n326;
wire   [2:0] n327;
wire   [3:0] n328;
wire   [4:0] n329;
wire   [5:0] n330;
wire   [6:0] n331;
wire   [7:0] n332;
wire   n333;
wire   n334;
wire   [6:0] n335;
wire   [7:0] n336;
wire   n337;
wire   n338;
wire   [6:0] n339;
wire   [7:0] n340;
wire   n341;
wire   n342;
wire   n343;
wire   n344;
wire   [1:0] n345;
wire   [2:0] n346;
wire   [3:0] n347;
wire   [3:0] n348;
wire   [7:0] n349;
wire   [7:0] n350;
wire   [7:0] n351;
wire   [7:0] n352;
wire   n357;
wire   n358;
wire   n359;
wire   [1:0] n360;
wire   [2:0] n361;
wire   [3:0] n362;
wire   [3:0] n363;
wire   [7:0] n364;
wire   [7:0] n365;
wire   [7:0] n366;
wire   [7:0] n367;
wire   [7:0] n372;
wire   [7:0] n373;
wire   [7:0] n374;
wire   [7:0] n375;
wire   n392;
wire   [1:0] n393;
wire   [2:0] n394;
wire   [3:0] n395;
wire   [4:0] n396;
wire   [5:0] n397;
wire   [6:0] n398;
wire   [7:0] n399;
wire   n400;
wire   n401;
wire   [6:0] n402;
wire   [7:0] n403;
wire   n404;
wire   n405;
wire   [6:0] n406;
wire   [7:0] n407;
wire   n408;
wire   n409;
wire   n410;
wire   n411;
wire   [1:0] n412;
wire   [2:0] n413;
wire   [3:0] n414;
wire   [4:0] n415;
wire   [2:0] n416;
wire   [7:0] n417;
wire   [7:0] n418;
wire   [7:0] n419;
wire   [7:0] n420;
wire   n425;
wire   n426;
wire   n427;
wire   [1:0] n428;
wire   [2:0] n429;
wire   [3:0] n430;
wire   [4:0] n431;
wire   [2:0] n432;
wire   [7:0] n433;
wire   [7:0] n434;
wire   [7:0] n435;
wire   [7:0] n436;
wire   [7:0] n441;
wire   [7:0] n442;
wire   [7:0] n443;
wire   [7:0] n444;
wire   n461;
wire   [1:0] n462;
wire   [2:0] n463;
wire   [3:0] n464;
wire   [4:0] n465;
wire   [5:0] n466;
wire   [6:0] n467;
wire   [7:0] n468;
wire   n469;
wire   n470;
wire   [6:0] n471;
wire   [7:0] n472;
wire   n473;
wire   n474;
wire   [6:0] n475;
wire   [7:0] n476;
wire   n477;
wire   n478;
wire   n479;
wire   n480;
wire   [1:0] n481;
wire   [2:0] n482;
wire   [3:0] n483;
wire   [4:0] n484;
wire   [5:0] n485;
wire   [1:0] n486;
wire   [7:0] n487;
wire   [7:0] n488;
wire   [7:0] n489;
wire   [7:0] n490;
wire   n495;
wire   n496;
wire   n497;
wire   [1:0] n498;
wire   [2:0] n499;
wire   [3:0] n500;
wire   [4:0] n501;
wire   [5:0] n502;
wire   [1:0] n503;
wire   [7:0] n504;
wire   [7:0] n505;
wire   [7:0] n506;
wire   [7:0] n507;
wire   [7:0] n512;
wire   [7:0] n513;
wire   [7:0] n514;
wire   [7:0] n515;
wire   n532;
wire   [1:0] n533;
wire   [2:0] n534;
wire   [3:0] n535;
wire   [4:0] n536;
wire   [5:0] n537;
wire   [6:0] n538;
wire   [7:0] n539;
wire   n540;
wire   n541;
wire   [6:0] n542;
wire   [7:0] n543;
wire   n544;
wire   n545;
wire   [6:0] n546;
wire   [7:0] n547;
wire   n548;
wire   n549;
wire   n550;
wire   n551;
wire   [1:0] n552;
wire   [2:0] n553;
wire   [3:0] n554;
wire   [4:0] n555;
wire   [5:0] n556;
wire   [6:0] n557;
wire   n558;
wire   [7:0] n559;
wire   [7:0] n560;
wire   [7:0] n561;
wire   [7:0] n562;
wire   n567;
wire   n568;
wire   n569;
wire   [1:0] n570;
wire   [2:0] n571;
wire   [3:0] n572;
wire   [4:0] n573;
wire   [5:0] n574;
wire   [6:0] n575;
wire   n576;
wire   [7:0] n577;
wire   [7:0] n578;
wire   [7:0] n579;
wire   [7:0] n580;
wire   [7:0] n585;
wire   [7:0] n586;
wire   [7:0] n587;
wire   n595;
wire   n596;
wire   n597;
wire   n598;
reg    [7:0] n11;
reg    [7:0] n15;
reg    [7:0] n19;
reg    [7:0] n54;
reg    [7:0] n59;
reg    [7:0] n64;
reg    [7:0] n68;
reg    [7:0] n72;
reg    [7:0] n76;
reg    [7:0] n104;
reg    [7:0] n115;
reg    [7:0] n123;
reg    [7:0] n127;
reg    [7:0] n131;
reg    [7:0] n135;
reg    [7:0] n164;
reg    [7:0] n176;
reg    [7:0] n184;
reg    [7:0] n188;
reg    [7:0] n192;
reg    [7:0] n196;
reg    [7:0] n226;
reg    [7:0] n239;
reg    [7:0] n247;
reg    [7:0] n251;
reg    [7:0] n255;
reg    [7:0] n259;
reg    [7:0] n290;
reg    [7:0] n304;
reg    [7:0] n312;
reg    [7:0] n316;
reg    [7:0] n320;
reg    [7:0] n324;
reg    [7:0] n356;
reg    [7:0] n371;
reg    [7:0] n379;
reg    [7:0] n383;
reg    [7:0] n387;
reg    [7:0] n391;
reg    [7:0] n424;
reg    [7:0] n440;
reg    [7:0] n448;
reg    [7:0] n452;
reg    [7:0] n456;
reg    [7:0] n460;
reg    [7:0] n494;
reg    [7:0] n511;
reg    [7:0] n519;
reg    [7:0] n523;
reg    [7:0] n527;
reg    [7:0] n531;
reg    [7:0] n566;
reg    [7:0] n584;
reg    [7:0] n591;
assign n6 = 8'b00000000;
assign n8 = 1'b0;
assign n21 = n8;
assign n22 = {n8, n21};
assign n23 = {n8, n22};
assign n24 = {n8, n23};
assign n25 = {n8, n24};
assign n26 = {n8, n25};
assign n27 = {n8, n26};
assign n28 = {n8, n27};
assign n29 = n11[7];
assign n30 = ~n29;
assign n31 = {n11[6],
  n11[5],
  n11[4],
  n11[3],
  n11[2],
  n11[1],
  n11[0]};
assign n32 = {n30, n31};
assign n33 = n28[7];
assign n34 = ~n33;
assign n35 = {n28[6],
  n28[5],
  n28[4],
  n28[3],
  n28[2],
  n28[1],
  n28[0]};
assign n36 = {n34, n35};
assign n37 = n32 < n36;
assign n38 = 8'b00000000 - n11;
assign n39 = 8'b00000000 - n15;
assign n40 = 1'b1;
assign n41 = n8;
assign n42 = {n8, n41};
assign n43 = {n8, n42};
assign n44 = {n8, n43};
assign n45 = {n8, n44};
assign n46 = {n8, n45};
assign n47 = {n8, n46};
assign n48 = {n40, n47};
assign n49 = n19 - n48;
assign n50 =
  n37 == 1'b0 ? n11 :
  n38;
assign n55 =
  n37 == 1'b0 ? n15 :
  n39;
assign n60 =
  n37 == 1'b0 ? n19 :
  n49;
assign n77 = n8;
assign n78 = {n8, n77};
assign n79 = {n8, n78};
assign n80 = {n8, n79};
assign n81 = {n8, n80};
assign n82 = {n8, n81};
assign n83 = {n8, n82};
assign n84 = {n8, n83};
assign n85 = n72[7];
assign n86 = ~n85;
assign n87 = {n72[6],
  n72[5],
  n72[4],
  n72[3],
  n72[2],
  n72[1],
  n72[0]};
assign n88 = {n86, n87};
assign n89 = n84[7];
assign n90 = ~n89;
assign n91 = {n84[6],
  n84[5],
  n84[4],
  n84[3],
  n84[2],
  n84[1],
  n84[0]};
assign n92 = {n90, n91};
assign n93 = n88 <= n92;
assign n94 = ~n93;
assign n96 = {n72[7],
  n72[6],
  n72[5],
  n72[4],
  n72[3],
  n72[2],
  n72[1],
  n72[0]};
assign n97 = n96;
assign n98 = n68 - n97;
assign n99 = n68 + n97;
assign n100 =
  n94 == 1'b0 ? n98 :
  n99;
assign n105 = ~n94;
assign n107 = {n68[7],
  n68[6],
  n68[5],
  n68[4],
  n68[3],
  n68[2],
  n68[1],
  n68[0]};
assign n108 = n107;
assign n109 = n72 - n108;
assign n110 = n72 + n108;
assign n111 =
  n105 == 1'b0 ? n109 :
  n110;
assign n116 = 8'b01100100;
assign n117 = n76 - n116;
assign n118 = n76 + n116;
assign n119 =
  n94 == 1'b0 ? n117 :
  n118;
assign n136 = n8;
assign n137 = {n8, n136};
assign n138 = {n8, n137};
assign n139 = {n8, n138};
assign n140 = {n8, n139};
assign n141 = {n8, n140};
assign n142 = {n8, n141};
assign n143 = {n8, n142};
assign n144 = n131[7];
assign n145 = ~n144;
assign n146 = {n131[6],
  n131[5],
  n131[4],
  n131[3],
  n131[2],
  n131[1],
  n131[0]};
assign n147 = {n145, n146};
assign n148 = n143[7];
assign n149 = ~n148;
assign n150 = {n143[6],
  n143[5],
  n143[4],
  n143[3],
  n143[2],
  n143[1],
  n143[0]};
assign n151 = {n149, n150};
assign n152 = n147 <= n151;
assign n153 = ~n152;
assign n154 = n131[7];
assign n155 = n154;
assign n156 = {n131[7],
  n131[6],
  n131[5],
  n131[4],
  n131[3],
  n131[2],
  n131[1]};
assign n157 = {n155, n156};
assign n158 = n127 - n157;
assign n159 = n127 + n157;
assign n160 =
  n153 == 1'b0 ? n158 :
  n159;
assign n165 = ~n153;
assign n166 = n127[7];
assign n167 = n166;
assign n168 = {n127[7],
  n127[6],
  n127[5],
  n127[4],
  n127[3],
  n127[2],
  n127[1]};
assign n169 = {n167, n168};
assign n170 = n131 - n169;
assign n171 = n131 + n169;
assign n172 =
  n165 == 1'b0 ? n170 :
  n171;
assign n177 = 8'b00111011;
assign n178 = n135 - n177;
assign n179 = n135 + n177;
assign n180 =
  n153 == 1'b0 ? n178 :
  n179;
assign n197 = n8;
assign n198 = {n8, n197};
assign n199 = {n8, n198};
assign n200 = {n8, n199};
assign n201 = {n8, n200};
assign n202 = {n8, n201};
assign n203 = {n8, n202};
assign n204 = {n8, n203};
assign n205 = n192[7];
assign n206 = ~n205;
assign n207 = {n192[6],
  n192[5],
  n192[4],
  n192[3],
  n192[2],
  n192[1],
  n192[0]};
assign n208 = {n206, n207};
assign n209 = n204[7];
assign n210 = ~n209;
assign n211 = {n204[6],
  n204[5],
  n204[4],
  n204[3],
  n204[2],
  n204[1],
  n204[0]};
assign n212 = {n210, n211};
assign n213 = n208 <= n212;
assign n214 = ~n213;
assign n215 = n192[7];
assign n216 = n215;
assign n217 = {n215, n216};
assign n218 = {n192[7],
  n192[6],
  n192[5],
  n192[4],
  n192[3],
  n192[2]};
assign n219 = {n217, n218};
assign n220 = n188 - n219;
assign n221 = n188 + n219;
assign n222 =
  n214 == 1'b0 ? n220 :
  n221;
assign n227 = ~n214;
assign n228 = n188[7];
assign n229 = n228;
assign n230 = {n228, n229};
assign n231 = {n188[7],
  n188[6],
  n188[5],
  n188[4],
  n188[3],
  n188[2]};
assign n232 = {n230, n231};
assign n233 = n192 - n232;
assign n234 = n192 + n232;
assign n235 =
  n227 == 1'b0 ? n233 :
  n234;
assign n240 = 8'b00011111;
assign n241 = n196 - n240;
assign n242 = n196 + n240;
assign n243 =
  n214 == 1'b0 ? n241 :
  n242;
assign n260 = n8;
assign n261 = {n8, n260};
assign n262 = {n8, n261};
assign n263 = {n8, n262};
assign n264 = {n8, n263};
assign n265 = {n8, n264};
assign n266 = {n8, n265};
assign n267 = {n8, n266};
assign n268 = n255[7];
assign n269 = ~n268;
assign n270 = {n255[6],
  n255[5],
  n255[4],
  n255[3],
  n255[2],
  n255[1],
  n255[0]};
assign n271 = {n269, n270};
assign n272 = n267[7];
assign n273 = ~n272;
assign n274 = {n267[6],
  n267[5],
  n267[4],
  n267[3],
  n267[2],
  n267[1],
  n267[0]};
assign n275 = {n273, n274};
assign n276 = n271 <= n275;
assign n277 = ~n276;
assign n278 = n255[7];
assign n279 = n278;
assign n280 = {n278, n279};
assign n281 = {n278, n280};
assign n282 = {n255[7],
  n255[6],
  n255[5],
  n255[4],
  n255[3]};
assign n283 = {n281, n282};
assign n284 = n251 - n283;
assign n285 = n251 + n283;
assign n286 =
  n277 == 1'b0 ? n284 :
  n285;
assign n291 = ~n277;
assign n292 = n251[7];
assign n293 = n292;
assign n294 = {n292, n293};
assign n295 = {n292, n294};
assign n296 = {n251[7],
  n251[6],
  n251[5],
  n251[4],
  n251[3]};
assign n297 = {n295, n296};
assign n298 = n255 - n297;
assign n299 = n255 + n297;
assign n300 =
  n291 == 1'b0 ? n298 :
  n299;
assign n305 = 8'b00001111;
assign n306 = n259 - n305;
assign n307 = n259 + n305;
assign n308 =
  n277 == 1'b0 ? n306 :
  n307;
assign n325 = n8;
assign n326 = {n8, n325};
assign n327 = {n8, n326};
assign n328 = {n8, n327};
assign n329 = {n8, n328};
assign n330 = {n8, n329};
assign n331 = {n8, n330};
assign n332 = {n8, n331};
assign n333 = n320[7];
assign n334 = ~n333;
assign n335 = {n320[6],
  n320[5],
  n320[4],
  n320[3],
  n320[2],
  n320[1],
  n320[0]};
assign n336 = {n334, n335};
assign n337 = n332[7];
assign n338 = ~n337;
assign n339 = {n332[6],
  n332[5],
  n332[4],
  n332[3],
  n332[2],
  n332[1],
  n332[0]};
assign n340 = {n338, n339};
assign n341 = n336 <= n340;
assign n342 = ~n341;
assign n343 = n320[7];
assign n344 = n343;
assign n345 = {n343, n344};
assign n346 = {n343, n345};
assign n347 = {n343, n346};
assign n348 = {n320[7],
  n320[6],
  n320[5],
  n320[4]};
assign n349 = {n347, n348};
assign n350 = n316 - n349;
assign n351 = n316 + n349;
assign n352 =
  n342 == 1'b0 ? n350 :
  n351;
assign n357 = ~n342;
assign n358 = n316[7];
assign n359 = n358;
assign n360 = {n358, n359};
assign n361 = {n358, n360};
assign n362 = {n358, n361};
assign n363 = {n316[7],
  n316[6],
  n316[5],
  n316[4]};
assign n364 = {n362, n363};
assign n365 = n320 - n364;
assign n366 = n320 + n364;
assign n367 =
  n357 == 1'b0 ? n365 :
  n366;
assign n372 = 8'b00000111;
assign n373 = n324 - n372;
assign n374 = n324 + n372;
assign n375 =
  n342 == 1'b0 ? n373 :
  n374;
assign n392 = n8;
assign n393 = {n8, n392};
assign n394 = {n8, n393};
assign n395 = {n8, n394};
assign n396 = {n8, n395};
assign n397 = {n8, n396};
assign n398 = {n8, n397};
assign n399 = {n8, n398};
assign n400 = n387[7];
assign n401 = ~n400;
assign n402 = {n387[6],
  n387[5],
  n387[4],
  n387[3],
  n387[2],
  n387[1],
  n387[0]};
assign n403 = {n401, n402};
assign n404 = n399[7];
assign n405 = ~n404;
assign n406 = {n399[6],
  n399[5],
  n399[4],
  n399[3],
  n399[2],
  n399[1],
  n399[0]};
assign n407 = {n405, n406};
assign n408 = n403 <= n407;
assign n409 = ~n408;
assign n410 = n387[7];
assign n411 = n410;
assign n412 = {n410, n411};
assign n413 = {n410, n412};
assign n414 = {n410, n413};
assign n415 = {n410, n414};
assign n416 = {n387[7],
  n387[6],
  n387[5]};
assign n417 = {n415, n416};
assign n418 = n383 - n417;
assign n419 = n383 + n417;
assign n420 =
  n409 == 1'b0 ? n418 :
  n419;
assign n425 = ~n409;
assign n426 = n383[7];
assign n427 = n426;
assign n428 = {n426, n427};
assign n429 = {n426, n428};
assign n430 = {n426, n429};
assign n431 = {n426, n430};
assign n432 = {n383[7],
  n383[6],
  n383[5]};
assign n433 = {n431, n432};
assign n434 = n387 - n433;
assign n435 = n387 + n433;
assign n436 =
  n425 == 1'b0 ? n434 :
  n435;
assign n441 = 8'b00000011;
assign n442 = n391 - n441;
assign n443 = n391 + n441;
assign n444 =
  n409 == 1'b0 ? n442 :
  n443;
assign n461 = n8;
assign n462 = {n8, n461};
assign n463 = {n8, n462};
assign n464 = {n8, n463};
assign n465 = {n8, n464};
assign n466 = {n8, n465};
assign n467 = {n8, n466};
assign n468 = {n8, n467};
assign n469 = n456[7];
assign n470 = ~n469;
assign n471 = {n456[6],
  n456[5],
  n456[4],
  n456[3],
  n456[2],
  n456[1],
  n456[0]};
assign n472 = {n470, n471};
assign n473 = n468[7];
assign n474 = ~n473;
assign n475 = {n468[6],
  n468[5],
  n468[4],
  n468[3],
  n468[2],
  n468[1],
  n468[0]};
assign n476 = {n474, n475};
assign n477 = n472 <= n476;
assign n478 = ~n477;
assign n479 = n456[7];
assign n480 = n479;
assign n481 = {n479, n480};
assign n482 = {n479, n481};
assign n483 = {n479, n482};
assign n484 = {n479, n483};
assign n485 = {n479, n484};
assign n486 = {n456[7],
  n456[6]};
assign n487 = {n485, n486};
assign n488 = n452 - n487;
assign n489 = n452 + n487;
assign n490 =
  n478 == 1'b0 ? n488 :
  n489;
assign n495 = ~n478;
assign n496 = n452[7];
assign n497 = n496;
assign n498 = {n496, n497};
assign n499 = {n496, n498};
assign n500 = {n496, n499};
assign n501 = {n496, n500};
assign n502 = {n496, n501};
assign n503 = {n452[7],
  n452[6]};
assign n504 = {n502, n503};
assign n505 = n456 - n504;
assign n506 = n456 + n504;
assign n507 =
  n495 == 1'b0 ? n505 :
  n506;
assign n512 = 8'b00000001;
assign n513 = n460 - n512;
assign n514 = n460 + n512;
assign n515 =
  n478 == 1'b0 ? n513 :
  n514;
assign n532 = n8;
assign n533 = {n8, n532};
assign n534 = {n8, n533};
assign n535 = {n8, n534};
assign n536 = {n8, n535};
assign n537 = {n8, n536};
assign n538 = {n8, n537};
assign n539 = {n8, n538};
assign n540 = n527[7];
assign n541 = ~n540;
assign n542 = {n527[6],
  n527[5],
  n527[4],
  n527[3],
  n527[2],
  n527[1],
  n527[0]};
assign n543 = {n541, n542};
assign n544 = n539[7];
assign n545 = ~n544;
assign n546 = {n539[6],
  n539[5],
  n539[4],
  n539[3],
  n539[2],
  n539[1],
  n539[0]};
assign n547 = {n545, n546};
assign n548 = n543 <= n547;
assign n549 = ~n548;
assign n550 = n527[7];
assign n551 = n550;
assign n552 = {n550, n551};
assign n553 = {n550, n552};
assign n554 = {n550, n553};
assign n555 = {n550, n554};
assign n556 = {n550, n555};
assign n557 = {n550, n556};
assign n558 = n527[7];
assign n559 = {n557, n558};
assign n560 = n523 - n559;
assign n561 = n523 + n559;
assign n562 =
  n549 == 1'b0 ? n560 :
  n561;
assign n567 = ~n549;
assign n568 = n523[7];
assign n569 = n568;
assign n570 = {n568, n569};
assign n571 = {n568, n570};
assign n572 = {n568, n571};
assign n573 = {n568, n572};
assign n574 = {n568, n573};
assign n575 = {n568, n574};
assign n576 = n523[7];
assign n577 = {n575, n576};
assign n578 = n527 - n577;
assign n579 = n527 + n577;
assign n580 =
  n567 == 1'b0 ? n578 :
  n579;
assign n585 = n531 - n6;
assign n586 = n531 + n6;
assign n587 =
  n549 == 1'b0 ? n585 :
  n586;
assign real_o = n566;
assign imag_o = n584;
assign ang_o = n591;
assign n595 = enable_i & n40;
assign n596 = n8 | n595;
assign n597 = n40 & n596;
assign n598 = reset_i | n8;
always @ (posedge clock_c)
begin
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n11 <= 8'b00000000;
    else
      n11 <= real_i;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n15 <= 8'b00000000;
    else
      n15 <= imag_i;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n19 <= 8'b00000000;
    else
      n19 <= ang_i;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n54 <= 8'b00000000;
    else
      n54 <= n50;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n59 <= 8'b00000000;
    else
      n59 <= n55;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n64 <= 8'b00000000;
    else
      n64 <= n60;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n68 <= 8'b00000000;
    else
      n68 <= n54;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n72 <= 8'b00000000;
    else
      n72 <= n59;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n76 <= 8'b00000000;
    else
      n76 <= n64;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n104 <= 8'b00000000;
    else
      n104 <= n100;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n115 <= 8'b00000000;
    else
      n115 <= n111;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n123 <= 8'b00000000;
    else
      n123 <= n119;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n127 <= 8'b00000000;
    else
      n127 <= n104;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n131 <= 8'b00000000;
    else
      n131 <= n115;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n135 <= 8'b00000000;
    else
      n135 <= n123;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n164 <= 8'b00000000;
    else
      n164 <= n160;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n176 <= 8'b00000000;
    else
      n176 <= n172;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n184 <= 8'b00000000;
    else
      n184 <= n180;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n188 <= 8'b00000000;
    else
      n188 <= n164;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n192 <= 8'b00000000;
    else
      n192 <= n176;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n196 <= 8'b00000000;
    else
      n196 <= n184;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n226 <= 8'b00000000;
    else
      n226 <= n222;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n239 <= 8'b00000000;
    else
      n239 <= n235;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n247 <= 8'b00000000;
    else
      n247 <= n243;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n251 <= 8'b00000000;
    else
      n251 <= n226;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n255 <= 8'b00000000;
    else
      n255 <= n239;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n259 <= 8'b00000000;
    else
      n259 <= n247;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n290 <= 8'b00000000;
    else
      n290 <= n286;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n304 <= 8'b00000000;
    else
      n304 <= n300;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n312 <= 8'b00000000;
    else
      n312 <= n308;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n316 <= 8'b00000000;
    else
      n316 <= n290;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n320 <= 8'b00000000;
    else
      n320 <= n304;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n324 <= 8'b00000000;
    else
      n324 <= n312;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n356 <= 8'b00000000;
    else
      n356 <= n352;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n371 <= 8'b00000000;
    else
      n371 <= n367;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n379 <= 8'b00000000;
    else
      n379 <= n375;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n383 <= 8'b00000000;
    else
      n383 <= n356;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n387 <= 8'b00000000;
    else
      n387 <= n371;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n391 <= 8'b00000000;
    else
      n391 <= n379;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n424 <= 8'b00000000;
    else
      n424 <= n420;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n440 <= 8'b00000000;
    else
      n440 <= n436;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n448 <= 8'b00000000;
    else
      n448 <= n444;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n452 <= 8'b00000000;
    else
      n452 <= n424;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n456 <= 8'b00000000;
    else
      n456 <= n440;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n460 <= 8'b00000000;
    else
      n460 <= n448;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n494 <= 8'b00000000;
    else
      n494 <= n490;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n511 <= 8'b00000000;
    else
      n511 <= n507;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n519 <= 8'b00000000;
    else
      n519 <= n515;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n523 <= 8'b00000000;
    else
      n523 <= n494;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n527 <= 8'b00000000;
    else
      n527 <= n511;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n531 <= 8'b00000000;
    else
      n531 <= n519;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n566 <= 8'b00000000;
    else
      n566 <= n562;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n584 <= 8'b00000000;
    else
      n584 <= n580;
  if (n597 == 1'b1)
    if (n598 == 1'b1)
      n591 <= 8'b00000000;
    else
      n591 <= n587;
end
endmodule


